//package org.zeus.api.resolver;
//
//import org.springframework.core.MethodParameter;
//import org.springframework.web.bind.support.WebDataBinderFactory;
//import org.springframework.web.context.request.NativeWebRequest;
//import org.springframework.web.context.request.RequestAttributes;
//import org.springframework.web.method.support.HandlerMethodArgumentResolver;
//import org.springframework.web.method.support.ModelAndViewContainer;
//
///**
// * @author liuwei56
// * @version 2018/10/30 下午3:01
// * @description 有@LoginUser注解的方法参数，注入当前登录用户
// * @see
// * @since 1.0
// */
//public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
//    private ApiUserService userService;
//
//    public void setUserService(ApiUserService userService) {
//        this.userService = userService;
//    }
//
//    @Override
//    public boolean supportsParameter(MethodParameter parameter) {
//        return parameter.getParameterType().isAssignableFrom(UserVo.class) && parameter.hasParameterAnnotation(LoginUser.class);
//    }
//
//    @Override
//    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container,
//                                  NativeWebRequest request, WebDataBinderFactory factory) throws Exception {
//        //获取用户ID
//        Object object = request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST);
//        if (object == null) {
//            return null;
//        }
//
//        //获取用户信息
//        UserVo user = userService.queryObject((Long) object);
//
//        return user;
//    }
//}
